iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0

在 Unstructured Data 中計算效能變得格外重要,而計算效能不外乎是平行化, 分散式 和 Caching 三大方向,當然也會針對演算法去做優化,像是 vLLM 這個項目就提出特殊的 Aggregator 架構來優化 Batch Inference 場景,另外也有 LightSeq, OpenNMT 等項目也是偏向針對演算法特定場景做優化

但我們今天先討論平行化跟分散式,平行化在 CPU 最常聽到的就是 SIMP 而在 GPU 基本上就是 CUDA Toolkit 的天和,然而當有多個 request 同時而來是 一個具有 AutoScaling 的分散式系統才能更好的處理這樣大量的需求,常見的做法有幾個

  1. Cloud Infro Provider 內建的 Auto Scaling: 優點是這樣的服務通常不會只包含 Inference 而是提供體整個 MLOps 相對應的元件,然而缺點就是會被綁定在平台,另外一些高階晶片像是 A100 可能會有供不應求的情快
  2. Serverless GPU: 最近很紅的如 RunPod, Banana 等,使用的 GPU 基本上是按秒計費,在很多場景下相對可以控制成本,並且會根據使用量可以自動 Horizontal Scaling,缺點就是在大多情況還是會遇到 Cold Start delay,
  3. 當然還是可以自己透過 Kubernetes 來做到,一個常見的組合就是透過 Triton Inference Server 加上 KServer,也有一派希望逃離 NVidia 控制的可以參考 Cog,缺點就是在整個開發過程,包括 Scaling 的Strategy和 Kubernetes 管理有很高的技術難度
  4. 有些成熟的工具如 Seldon Core 和 BentoML 則是瞄準第三個做法的痛點,提供一個已經寫好策略和包裝好的 Kubernetes 部署方式,並將產品開源來讓你輕鬆部署,而他們的商業策略則是經營一個商業版本,需要收費來使用一些進階功能或是部署協助

原本在 Binary Classification 透過 FastAPI 或是 Flask 等方式去建構一個 Python API Backend,到 Unstructured Data 題目時,可能會需要更多運算的處理,甚至需要透過 gRPC 來解決 IO latency 的問題


上一篇
Day 25 Unstructured Data
下一篇
Day 27 LLMOps
系列文
踏上 MLOps 之路:從 Applied Data Scientist 到 MLOps 的轉變與建構30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言